#pragma once
#include	"BCIstructs.h"

#define		MAX_FILTER_LEN		256
#define		MAX_FILTER_NUM		50


typedef struct	Filter
{
	wxString	FileName;
	wxString	Name;
}Filter;

class MA_IIR_Filter
{
public:
	MA_IIR_Filter(void);
	
public:
	~MA_IIR_Filter(void);

	void	FilterSample(HimDataStruct *pData);
	void	FilterData(HimDataStruct *pData,int Len);

	void	LoadFromFile(wxString FileName);
	
	int		FilterNumber;
	Filter	Filters[MAX_FILTER_NUM];
private:
	int		FilterLenMA,FilterLenAR;
	
	float AR[MAX_FILTER_LEN],MA[MAX_FILTER_LEN];
	float MA_mem[MAX_CHANNELS][MAX_FILTER_LEN],AR_mem[MAX_CHANNELS][MAX_FILTER_LEN];
};

